In contemporary data networks, data is typically exchanged between a requesting user, usually referred to as a client, and a network computer having an associated local storage means where the requested data is stored, that network computer usually being referred to as a server. Commonly, the flow of data between the client and the server is predominantly in the server-to-client direction. The transfer time for a given increment of data being exchanged via the network is a function of various network and client/server constraints, and may deviate significantly from an ideal transfer time. It is, of course, the user's desire to minimize the network transfer time, so as to receive a requested set of data as soon as possible after initiating the request. That objective similarly holds from the standpoint of the network infrastructure—the sooner a given data transfer is completed, the sooner the network bandwidth dedicated to that request can be reused for another data transfer application. A key consideration in the realization of any performance improvement for a network is knowledge of the source and length of transmission delays that contribute to sub-optimum data transfer times.
While efforts have been made in the art to determine network transfer delay cause and contribution, the necessary monitoring has generally been implemented through instrumentation of the clients and servers, and the transmission of known test messages. In one case known to the inventors, a methodology was suggested for carrying out the monitoring function using actual network traffic data based on a critical path analysis methodology, but that approach applies only to controlled test conditions, rather than existing operational networks. See A. Barford and M. Crovella, “Critical Path Analysis of TCP Transactions,” SIGCOMM '00, Stockholm, 2000.